package com.shuai.chatroom.mapper;

import com.shuai.chatroom.entity.SessionsInfo;
import com.shuai.chatroom.entity.vo.FriendInfoVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.transaction.annotation.Transactional;

import java.time.LocalDateTime;
import java.util.List;

@Mapper
public interface SessionsMapper {
    /**
     * 根据用户id获取到包含该用户的所有会话id
     */
    List<Integer> getSessionIds(@Param("uId") Integer uId);

    /**
     * 根据会话Id获取到出用户本身之外的其他用户，则这些用户是与当前用户进行会话的用户
     */
    List<FriendInfoVO> getFriendsBySessionId(@Param("sessionId") Integer sessionId, @Param("uId") Integer uId);

    /**
     * 创建会话
     */
    int addSession(SessionsInfo sessionsInfo);

    /**
     * 创建会话用户表
     */
    @Transactional
    int addSessionUser(@Param("sessionId") Integer sessionId, @Param("uId") Integer uId, @Param("toUId") Integer toUId);

    /**
     * 查询会话的更新时间
     */
    LocalDateTime getUpdateTime(@Param("sessionId") Integer sessionId);


    /**
     * 更新会话时间
     */
    int updateSessionTime(@Param("sessionId") Integer sessionId);
}
